﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TangoFamilyAndGuide.Site
{
    public partial class CastingArtistsOfferModificar : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Funciones.SessionTimeOut(Session))
                {
                    Response.Redirect("~/SessionTimeout.aspx");
                }
                else
                {
                    Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"];
                    List<Entidades.Permiso> permisoHabilitado = sesion.Usuario.Permisos.FindAll(delegate(Entidades.Permiso p)
                    {
                        return p.TipoPermiso.Id == "OperCastingArtistsOffer" && p.Estado == "Active";
                    });
                    if (permisoHabilitado.Count == 0)
                    {
                        Response.Redirect("~/Home.aspx");
                    }

                    Entidades.CastingArtistsOffer castingArtistsOffer = (Entidades.CastingArtistsOffer)Session["CastingArtistsOffer"];

                    IdCastingArtistsOfferLabel.Text = castingArtistsOffer.Id.ToString();
                    EstadoActualLabel.Text = "Current status: " + castingArtistsOffer.Estado;

                    sesion.Usuario.Id = castingArtistsOffer.Usuario.Id;
                    NombreTextBox.Text = castingArtistsOffer.Nombre;
                    DescripcionTextBox.Text = castingArtistsOffer.Descripcion;
                    Domicilio.Pais = castingArtistsOffer.Pais;
                    Domicilio.Provincia = castingArtistsOffer.Provincia;
                    Domicilio.Localidad = castingArtistsOffer.Localidad;
                    Domicilio.Telefono = castingArtistsOffer.Telefono;
                    Domicilio.Email = castingArtistsOffer.Email;
                    WebSiteTextBox.Text = castingArtistsOffer.WebSite;
                    
                    FacebookTextBox.Text = castingArtistsOffer.Facebook;
                    YouTubeTextBox.Text = castingArtistsOffer.YouTube;
                    StyleCheckBoxList.SelectedValue = castingArtistsOffer.Estilo;

                    StyleCheckBoxList.DataSource = Entidades.StylesCastingOffer.StyleCastingOffer.Lista();
                    NombreTextBox.Focus();
                    DataBind();
                    GenerarStyles(castingArtistsOffer.Estilo);
                }
            }
        }
        private void GenerarStyles(string Styles)
        {
            string[] lista = Styles.Split(Convert.ToChar("-"));
            foreach (string texto in lista)
            {
                foreach (ListItem item in StyleCheckBoxList.Items)
                {
                    if (texto == item.Value)
                    {
                        item.Selected = true;
                    }
                }
            }
        }
        private string GenerarStyles()
        {
            string texto = "";
            foreach (ListItem item in StyleCheckBoxList.Items)
            {
                texto += item.Value + "-";
            }
            if (texto != "")
            {
                texto = texto.Substring(0, texto.Length - 1);
            }
            return texto;
        }
        protected void AceptarButton_Click(object sender, EventArgs e)
        {
            if (Funciones.SessionTimeOut(Session))
            {
                Response.Redirect("~/SessionTimeout.aspx");
            }
            else
            {
                Entidades.Sesion sesion = (Entidades.Sesion)Session["Sesion"];
                Entidades.CastingArtistsOffer castingArtistsOfferDesde = (Entidades.CastingArtistsOffer)Session["CastingArtistsOffer"];
                Entidades.CastingArtistsOffer castingArtistsOfferHasta = RN.CastingArtistsOffer.ObtenerCopia(castingArtistsOfferDesde);
                try
                {
                    castingArtistsOfferHasta.Id = Convert.ToInt32(IdCastingArtistsOfferLabel.Text);
                    castingArtistsOfferHasta.Usuario.Id = sesion.Usuario.Id;
                    castingArtistsOfferHasta.Nombre = NombreTextBox.Text;
                    castingArtistsOfferHasta.Descripcion = DescripcionTextBox.Text;
                    castingArtistsOfferHasta.Pais = Domicilio.Pais;
                    castingArtistsOfferHasta.Provincia = Domicilio.Provincia;
                    castingArtistsOfferHasta.Localidad = Domicilio.Localidad;
                    castingArtistsOfferHasta.Email = Domicilio.Email;
                    castingArtistsOfferHasta.Telefono = Domicilio.Telefono;

                    castingArtistsOfferHasta.WebSite = WebSiteTextBox.Text;
                    castingArtistsOfferHasta.Facebook = FacebookTextBox.Text;
                    castingArtistsOfferHasta.YouTube = YouTubeTextBox.Text;
                    castingArtistsOfferHasta.Estilo = GenerarStyles();
                    RN.CastingArtistsOffer.Modificar(castingArtistsOfferDesde, castingArtistsOfferHasta, sesion);

                    NombreTextBox.Enabled = false;
                    DescripcionTextBox.Enabled = false;
                    Domicilio.Enabled = false;
                    WebSiteTextBox.Enabled = false;
                    FacebookTextBox.Enabled = false;
                    YouTubeTextBox.Enabled = false;
                    StyleCheckBoxList.Enabled = false;
                    AceptarButton.Enabled = false;
                    SalirButton.Text = "Salir";

                    MensajeLabel.Text = "There was successfully. ";
                }
                catch (Exception ex)
                {
                    MensajeLabel.Text = EX.Funciones.Detalle(ex);
                    return;
                }
            }
        }
    }
}